package ide.modelo;

import java.util.ArrayList;

import maquina.UnidadDeControl;
import maquina.excepciones.CadenaNoAptaComoByteException;
import maquina.excepciones.RegistroInvalidoException;

public class ObservadorUC {

	private UnidadDeControl uDeControl;

	public ObservadorUC() {
		uDeControl = UnidadDeControl.getInstancia();
	}

	public ArrayList<String> getRegistros() {
		ArrayList<String> registros = new ArrayList<String>();

		for (int i = 0; i < 16; i++) {
			try {
				registros.add(uDeControl.getRegistros().leer(i).aStringHexa());
			} catch (RegistroInvalidoException | CadenaNoAptaComoByteException e) {
				System.out.println(e);
			}
		}
		return registros;
	}

	public int getNegative() {
		return uDeControl.getALU().getNegative();
	}
	public int getCarry() {
		return uDeControl.getALU().getCarry();
	}
	public int getZero() {
		return uDeControl.getALU().getZero();
	}
	public int getOverflow() {
		return uDeControl.getALU().getOverflow();
	}
	public int getPerdidaPrecision() {
		return uDeControl.getALU().getPerdidaPrecision();
	}
	public boolean getHuboOverflow() {
		return uDeControl.getHuboOverflow();
	}
	public boolean getHuboPerdidaPrecision() {
		return uDeControl.getHuboPerdidaPrecision();
	}
}
